Imports TeamUp.GarantiaTransacional
Imports Conexao
Imports System.Text
Imports System.Collections.Generic
Imports TeamUp.Entidades

Public Class AtividadeDao
    Inherits Model

    Public Sub New(ByVal objGarantiaTransacional As GTransacional)
        GarantiaTransacional = objGarantiaTransacional
    End Sub



    Public Function getAtividade(ByVal objParametroAtividade As ParametroAtividade) As List(Of Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As DataSet
        Dim lstAtividade As List(Of Atividade) = Nothing
        Dim strCriterio As String = "WHERE"
        Dim intContador As Integer
        Try
            strSql = "SELECT idAtividade, idEscopoEstimativa, descricao, premissas, observacao FROM atividade "

            If Not objParametroAtividade Is Nothing AndAlso objParametroAtividade.getIdEscopo <> "" Then
                strSql += strCriterio + " idEscopoEstimativa = " + objParametroAtividade.getIdEscopo + ""
                strCriterio = " AND "
            End If

            If Not objParametroAtividade Is Nothing AndAlso objParametroAtividade.getIdAtividade <> "" Then
                strSql += strCriterio + " idAtividade = " + objParametroAtividade.getIdAtividade + ""
                strCriterio = " AND "
            End If

            objResultado = objConBanco.executarConsulta(strSql)

            If objResultado.Tables(0).Rows.Count > 0 Then
                lstAtividade = New List(Of Atividade)
                For intContador = 0 To objResultado.Tables(0).Rows.Count - 1
                    lstAtividade.Add(New Atividade(objResultado.Tables(0).Rows(intContador)("descricao"), _
                                        objResultado.Tables(0).Rows(intContador)("premissas"), Nothing, _
                                        objResultado.Tables(0).Rows(intContador)("idAtividade"), _
                                        objResultado.Tables(0).Rows(intContador)("idEscopoEstimativa")))
                Next
            End If

            getAtividade = lstAtividade

        Finally
        End Try
    End Function

    Public Function consultarNovasAtividades(ByVal objParametroAtividade As ParametroAtividade) As List(Of Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As DataSet
        Dim lstAtividade As List(Of Atividade) = Nothing
        Dim strCriterio As String = "WHERE"
        Dim intContador As Integer
        Try
            strSql = "SELECT idNovaAtividade, idEscopoEstimativa, descricao, premissas FROM NovasAtividades "

            If Not objParametroAtividade Is Nothing AndAlso objParametroAtividade.getIdEscopo <> "" Then
                strSql += strCriterio + " idEscopoEstimativa = " + objParametroAtividade.getIdEscopo + ""
                strCriterio = " AND "
            End If

            If Not objParametroAtividade Is Nothing AndAlso objParametroAtividade.getIdAtividade <> "" Then
                strSql += strCriterio + " idNovaAtividade = " + objParametroAtividade.getIdAtividade + ""
                strCriterio = " AND "
            End If

            objResultado = objConBanco.executarConsulta(strSql)

            If objResultado.Tables(0).Rows.Count > 0 Then
                lstAtividade = New List(Of Atividade)
                For intContador = 0 To objResultado.Tables(0).Rows.Count - 1
                    lstAtividade.Add(New Atividade(objResultado.Tables(0).Rows(intContador)("descricao"), _
                                        objResultado.Tables(0).Rows(intContador)("premissas"), Nothing, _
                                        objResultado.Tables(0).Rows(intContador)("idNovaAtividade"), _
                                        objResultado.Tables(0).Rows(intContador)("idEscopoEstimativa")))
                Next
            End If

            consultarNovasAtividades = lstAtividade

        Finally
        End Try
    End Function

    Public Sub incluirAtividade(ByVal objAtividade As Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "INSERT INTO atividade(idEscopoEstimativa, descricao, premissas, observacao)VALUES(" & _
                     objAtividade.getIdEscopo & ",'" & objAtividade.getDescricao() & "','" & objAtividade.getPremissa & "','" & objAtividade.getObservacao & "')"

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)


        Finally
        End Try
    End Sub

    Public Sub incluirNovasAtividades(ByVal objAtividade As Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "INSERT INTO NovasAtividades(idEscopoEstimativa, descricao, premissas, idUsuario)VALUES(" & _
                     objAtividade.getIdEscopo & ",'" & objAtividade.getDescricao() & "','" & objAtividade.getPremissa & "'," & objAtividade.getIdUsuario & ")"

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)


        Finally
        End Try
    End Sub

    Public Sub excluirAtividade(ByVal objParametroAtividade As ParametroAtividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "DELETE FROM atividade where IdAtividade = " & objParametroAtividade.getIdAtividade & " AND IdEscopoEstimativa = " & objParametroAtividade.getIdEscopo() & ""

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)
        Finally
        End Try
    End Sub

    Public Sub excluirNovasAtividades(ByVal objParametroAtividade As ParametroAtividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "DELETE FROM NovasAtividades where IdNovaAtividade = " & objParametroAtividade.getIdAtividade & " AND IdEscopoEstimativa = " & objParametroAtividade.getIdEscopo() & ""

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)
        Finally
        End Try
    End Sub

    Public Sub alterarAtividade(ByVal objAtividade As Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "UPDATE atividade SET descricao = '" & objAtividade.getDescricao & "', premissas = '" & objAtividade.getPremissa & "'  where IdAtividade = " & objAtividade.getId & " AND IdEscopoEstimativa = " & objAtividade.getIdEscopo() & ""

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)
        Finally
        End Try
    End Sub

    Public Sub alterarNovasAtividades(ByVal objAtividade As Atividade)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "UPDATE NovasAtividades SET descricao = '" & objAtividade.getDescricao & "', premissas = '" & objAtividade.getPremissa & "'  where IdNovaAtividade = " & objAtividade.getId & " AND IdEscopoEstimativa = " & objAtividade.getIdEscopo() & ""

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)
        Finally
        End Try
    End Sub

End Class
